iT邦幫忙

4

.Net的副檔名

  • 分享至 

  • xImage
  •  

一直以來只知道如何引用.dll,但卻不明白Visual Studio產生的另外兩個副檔名為.pdb.refresh是在幹嘛用的,這次把網路上找的資源整理貼上紀錄。

.DLL(Dynamic Link Library 動態連結函式庫)

.dll是包含程式碼和資料的函式庫,它不是一個獨立的程式,不能夠自己運行,它是向其他程式提供服務的一段程式碼。
實務面上,會把多個專案共用的method或class提出來,並編譯成.dll後,有需要用到的專案再去將它引用進自己的專案,以此達到程式碼的重用性和可維護性。

當你用Visual Studio建立一個class時,你在build專案的同時,會自動產生在C:\\專案\bin\Debug\的目錄下

優點

  1. 程式碼模組化(適當的將共用的程式碼提出來)
  2. 降低硬碟的空間
  3. 容易維護及擴充

其實這就很像平常在寫程式,將重複的code提出來並包裝,讓需要用到這段method的部分,都去呼叫它,只是用不同的規則來運作。

.PDB(Program DataBase 程式資料庫)

這個檔案也是隨著build的同時和.dll產生在同一個目錄下。
主要在儲存.dll內的區域變數名稱、行數、檔案名稱,而這檔案是在debug時,用來告訴你目前對應到的程式碼行數和變數位置。

.refresh

當引用了一個外部的.dll,會自動產生一個.refresh,這個檔案實際上是J個.dll的絕對路徑,當引用的.dll更新程式碼,引用的專案也會自動更新。
這邊有做個驗證,用的是Visual Studio 2012版
首先建立一個.dll

namespace dllTest
{
    public class Test
    {
        public double add(double first, double second)
        {
            return first + second;
        }
    }
}

引用的專案

    Test aTest = new Test();
    aTest.add(1, 2);

這時候更改.dll

namespace dllTest
{
    public class Test
    {
        public double _first;
        public double _second;
        public double add(double first, double second)
        {
            return first + second;
        }
    }
}

此時引用的專案需要直接run起來,它才會去比對兩邊的guid是否一致

    Test aTest = new Test();
    aTest.add(1, 2);
    aTest._first = 20; //不需要重新引用.dll,即獲得更新後的程式碼。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0

長知識推推

我要留言

立即登入留言